import os
import pandas as pd

"""
os.path.join('.', 'data')
生成跨平台的路径字符串：'./data'（表示当前目录上一级目录中的 data 文件夹）。
"""
os.makedirs(os.path.join('.', 'data'), exist_ok=True)
"""
os.path.join('.', 'data', 'house_tiny.csv')
生成路径：'./data/house_tiny.csv'（同级目录的 data 文件夹中的 CSV 文件）。
注意：这只是生成路径字符串，不会自动创建文件。实际写入文件需要配合 open() 等操作。
"""
data_file = os.path.join('.', 'data', 'house_tiny.csv')
# print(data_file)
"""
with open(...) as f
使用上下文管理器安全地打开文件，自动关闭文件(即使发生异常)。
"""
with open(data_file, 'w') as f:
    f.write('NumRooms,Alley,Price\n')  # 写入列名（表头）
    f.write('NA,Pave,127500\n')  # 写入第1行数据
    f.write('2,NA,106000\n')  # 写入第2行数据
    f.write('4,NA,178100\n')  # 写入第3行数据
    f.write('NA,NA,140000\n')  # 写入第4行数据

"""
要从创建的CSV文件中加载原始数据集，我们导入pandas包并调用read_csv函数
"""
data = pd.read_csv(data_file)  # 自动解析 NA 为缺失值
print(data)

"""
将数据集的输入和输出分开，并使用fillna()方法将缺失值替换为列的均值。
"""
inputs, outputs = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = inputs.fillna(inputs.mean())
print(inputs)
